//
//  WelcomeController.swift
//  Sina
//
//  Created by maling  on 15/11/8.
//  Copyright © 2015年 maling . All rights reserved.
//

import UIKit

import SDWebImage
class WelcomeController: UIViewController {

    //  设置界面  视图的层次结构
    override func loadView() {
        //使用背景图像作为跟视图，不用担心图像的缩放问题
        view = bgImageView
        setupUI()
    }
    //试图加载完成之后的后续操作  通常用来设置数据
    override func viewDidLoad() {
        super.viewDidLoad()
        iconImageView.sd_setImageWithURL(UserAccountViewModel.sharedUserAccount.avatarUrl, placeholderImage: UIImage(named: "avatar_default_big"))
       
    }
    
    //MARK: - 设置动画
    // 设置欢迎界面头像动画-  视图已经显示， 通常可以用来处理动画、键盘的
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        
        /**    multiplier 属性是只读属性 创建之后 不允许修改
            使用自动布局有一个开发， 有一个原则
           - 所有‘使用约束的’设置位置的控件， 不要在设置frame
        
            * 原因： 自动布局会根据设置的约束 自动计算控件的frame
            * 在 layoutSubviews 函数中设置frame
            * 如果程序员 主动修改了 frame 会引起自动布局计算错误
        
             - 工作原理 ： 当一个运行循环启动，自动布局会“收集”所有控件的约束设置
             - 在运行循环结束前， 调用 layoutSubview函数 统一设置frame
             - 如果希望某些约束提前跟新 使用 layoutSubview 函数让自动布局系统，提前跟新收集的约束变化
        
        */
        
        //这里不是设置头像的位置，只是跟新位置（强制跟新）
        iconImageView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(view.snp_bottom).offset(-view.bounds.height + 200)
        }
        
        //设置动画
        infoLabel.alpha = 0  //为了让动画结束后显示出来 “欢迎回来” 标签
        UIView.animateWithDuration(1.2,         // 动画时长
            delay: 0,                           // 延迟执行
            usingSpringWithDamping: 0.8,        // 弹力系数 越小越弹
            initialSpringVelocity: 10,          // 重力加速度
            options: [],                        // 动画相关的参数
            animations: { () -> Void in         // 执行动画相关的内容
            
                // 修改‘动画’的属性 控件的位置（强制设置位置）
                self.view.layoutIfNeeded()
            }) { (_) -> Void in
                
              //MARK: --显示完毕欢迎页面后跳转页面到主页面
                UIView.animateWithDuration(0.8, animations: { () -> Void in
                    
                        self.infoLabel.alpha = 1
                    }, completion: { (_) -> Void in
                        
                        print("ok")
                        // 不推荐写法
                        // UIApplication.sharedApplication().keyWindow?.rootViewController = MainViewController()
                        NSNotificationCenter.defaultCenter().postNotificationName(WBSwitchRootViewControllerNotification, object: nil)
                })
            
        }
        
    }
   
    
    

// MARK: - 懒加载控件（属性-背景-头像-描述文字）
    // 背景图
    private lazy var bgImageView: UIImageView = UIImageView(imageName: "ad_background")
    // 头像
    private lazy var iconImageView: UIImageView = {
    
        let iv = UIImageView(imageName: "avatar_default_big")
        //设置圆形头像
        iv.layer.cornerRadius = 45
        iv.layer.masksToBounds = true
        
        return iv
    }()
    
    // label 描述文字
    private lazy var infoLabel: UILabel = UILabel(title: "欢迎回来", fontSize: 16, color: UIColor.darkGrayColor())

   
}

//MARK: - 设置界面
extension WelcomeController {
    
    private func setupUI() {
    
        //1.添加头像控件----(这里是在控制器里面添加的需要是view.addSubview)
        view.addSubview(iconImageView)
        view.addSubview(infoLabel)
        
        //2.添加布局-头像
        iconImageView.snp_makeConstraints { (make) -> Void in
            
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-200)
            make.width.equalTo(90)
            make.height.equalTo(90)
        }
        //2.添加布局-label
        infoLabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconImageView.snp_centerX)
            make.top.equalTo(iconImageView.snp_bottom).offset(16)
        }
    }
    
  

}

